set_charset("utf8"); self::$base_name = DB_BASE; } static function connect($sql){ $query = self::$connect->query($sql); if(!$query || self::$connect->error){ // $debug = debug_backtrace(); putlog('sql_errors', 'error: '.self::$connect->error."\n".'sql: '.$sql); // return self::select($sql); die(self::$connect->error); } return $query; } static function select($sql){ $query = DB::connect($sql); $num = $query->num_rows; if($num > 0) return $query; else return false; } static function SA($sql,$ROW = false){ $query = DB::select($sql); //file_put_contents('sql.txt', $sql."\n", FILE_APPEND); if(!$query) return array(); $return = array(); while($row = mysqli_fetch_assoc($query)){ $return[] = $row; } if($ROW) return $return[0]; else return $return; } static function SAK($sql){ $query = DB::select($sql); if(!$query) return array(); $return = array(); while($row = mysqli_fetch_assoc($query)){ $id = $row['k']; unset($row['k']); $return[$id] = $row; } return $return; } static function SKV($sql,$ROW = false){ $query = DB::select($sql); if(!$query) return array(); $return = array(); while($row = mysqli_fetch_assoc($query)){ $return[$row['k']] = (string)$row['v']; } return $return; } static function SACOL($sql,$key = false){ $query = DB::select($sql); if(!$query) return array(); $return = array(); if($key){ while($row = mysqli_fetch_array($query)){ $return[$row[0]] = (string)$row[0]; } } else{ while($row = mysqli_fetch_array($query)){ $return[] = (string)$row[0]; } } return $return; } static function SAV($sql,$ROW = false){ $query = DB::select($sql); if(!$query) return array(); $return = array(); while($row = mysqli_fetch_assoc($query)){ $return[] = (string)$row['v']; } if($ROW) return $return[0]; else return $return; } static function I($sql){ $query = DB::connect($sql); if(!$query) return false; return self::$connect->insert_id; } static function U($sql){ $query = DB::connect($sql); if(!$query) return false; else return true; } static function insert($table,$data){ $KEYS = array_keys($data); $VALUES = array_values($data); if(!is_array($VALUES[0])) return self::I('INSERT INTO '.$table.' (`'.implode('`,`',$KEYS).'`) VALUES("'.implode('","',$VALUES).'")'); else{ foreach($data AS $v){ $KEYS = array_keys($v); $VALUES = array_values($v); self::I('INSERT INTO '.$table.' (`'.implode('`,`',$KEYS).'`) VALUES("'.implode('","',$VALUES).'")'); } return true; } } static function replace($table,$data){ $KEYS = array_keys($data); $VALUES = array_values($data); if(!is_array($VALUES[0])) return self::I('REPLACE INTO '.$table.' (`'.implode('`,`',$KEYS).'`) VALUES("'.implode('","',$VALUES).'")'); else{ foreach($data AS $v){ $KEYS = array_keys($v); $VALUES = array_values($v); self::I('REPLACE INTO '.$table.' (`'.implode('`,`',$KEYS).'`) VALUES("'.implode('","',$VALUES).'")'); } return true; } } static function update($table,$data,$where){ $VALUES = array_values($data); $SET = array(); if(!is_array($VALUES[0])){ foreach($data AS $k=>$v){ $SET[] = $k.' = "'.$v.'"'; } return self::U('UPDATE '.$table.' SET '.implode(',',$SET).($where?' WHERE '.$where:'')); } else{ foreach($data AS $V){ $id = array(); foreach($V AS $k=>$v){ $SET[] = $k.' = "'.$v.'"'; } $id[] = self::U('UPDATE '.$table.' SET '.implode(',',$SET).($where?' WHERE '.$where:'')); } return $id; } } //ВИТАЛИК static function getTable($sql, $actions=false, $id = '', $class='table'){ //построить таблицу по запросу // $sql, $edit=false, $del=false, $edExtrauri='', $delExtrauri='', $id = '', $class='auto_table'){ //построить таблицу по запросу /* $sql = sql запрос $edit='false' = кнопка редактирования $del='false' = кнопка удаления $class='auto_table' = класс таблицы $edExtrauri = ссылка на действие для edit $delExtrauri = ссылка на действие для delete */ //используемые переменные $sWebUrl = SITE_URL; //веб ссылка сайта //echo $sWebUrl; $result = self::getResult($sql); //d($result); if($result===0) return 0; $html = "\n"; if($actions){ //установлены ли доп.пункты foreach($actions as $action){ $i=0; $result['headers'][]=$action['name']; //создается новая колонка в результате foreach($result['data'] as $res){ //заполнение колонки $result['data'][$i][$action['name']]="".$action['name'].""; $i++; } } } $col_count = count($result['headers']); //заголовки таблицы $html.="\t"; for($i=0;$i<$col_count;$i++) { $html .= ""; } $html.="\n"; foreach($result['data'] as $res=>$val){ $html.="\t"; foreach($val as $col){ $html.=""; } $html.="\n"; } $html.="
".$result['headers'][$i]."
$col
\n"; return $html; } //ВИТАЛИК function getResult($sql, $head = true){ //получить результат по запросу $result = mysqli_query(DB::$connect, $sql); if($result) while($row[] = mysqli_fetch_assoc($result)){}; if(mysqli_affected_rows(DB::$connect)>0){ mysqli_free_result($result); array_pop($row); $res['data']=$row; $headers = array(); //хранение заголовков таблиц foreach($row[0] as $row => $value){ $headers[] = $row; } if($head) $res['headers']=$headers; return $res; } else { //echo "нет ничего в таблице
"; return 0; } } }